home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / packet / thenet / x1j4_src / opt.dat < prev    next >
Encoding:
Text File  |  1995-02-12  |  16.0 KB  |  1,188 lines

  1. \tlxi h,0
  2. ^\tpush h
  3. ^\tlxi h,0
  4. ^\tpush h
  5. %
  6. \tlxi h,0
  7. \tpush h
  8. \tpush h\t    ; ** remove lxi h,0
  9. %%
  10. \tmov h,b
  11. ^\tmov l,c
  12. ^\tmov h,b
  13. ^\tmov l,c
  14. %
  15. \tmov h,b
  16. \tmov l,c\t    ; ** remove mov hl,bc
  17. %%
  18. \tmov h,b
  19. ^\tmov l,c
  20. ^\tinx h
  21. ^\tmov b,h
  22. ^\tmov c,l
  23. %
  24. \tinx b
  25. \tmov h,b
  26. \tmov l,c\t    ; ** simplify bc++
  27. %%
  28. \tmov h,b
  29. ^\tmov l,c
  30. ^\tdcx h
  31. ^\tmov b,h
  32. ^\tmov c,l
  33. %
  34. \tdcx b
  35. \tmov h,b
  36. \tmov l,c\t    ; ** simplify bc--
  37. %%
  38. \tdb 221,229
  39. ^\tpop h
  40. ^\tdad h
  41. ^\tpush h
  42. ^\tdb 221,225
  43. %
  44. \tdb 0ddh,029h
  45. \tdb 0ddh,0e5h
  46. \tpop h    \t    ; ** simplify ix<<1
  47. %%
  48. \tdb 253,229
  49. ^\tpop h
  50. ^\tdad h
  51. ^\tpush h
  52. ^\tdb 253,225
  53. %
  54. \tdb 0fdh,029h
  55. \tdb 0fdh,0e5h
  56. \tpop h    \t    ; ** simplify iy<<1
  57. %%
  58. \tdb 221,229
  59. ^\tpop h
  60. ^\tinx h
  61. ^\tpush h
  62. ^\tdb 221,225
  63. %
  64. \tdb 0ddh,023h
  65. \tdb 0ddh,0e5h
  66. \tpop h    \t    ; ** simplify ix++
  67. %%
  68. \tdb 253,229
  69. ^\tpop h
  70. ^\tinx h
  71. ^\tpush h
  72. ^\tdb 253,225
  73. %
  74. \tdb 0fdh,023h
  75. \tdb 0fdh,0e5h
  76. \tpop h    \t    ; ** simplify iy++
  77. %%
  78. \tdb 221,229
  79. ^\tpop h
  80. ^\tdcx h
  81. ^\tpush h
  82. ^\tdb 221,225
  83. %
  84. \tdb 0ddh,02bh
  85. \tdb 0ddh,0e5h
  86. \tpop h    \t    ; ** simplify ix--
  87. %%
  88. \tdb 253,229
  89. ^\tpop h
  90. ^\tdcx h
  91. ^\tpush h
  92. ^\tdb 253,225
  93. %
  94. \tdb 0fdh,02bh
  95. \tdb 0fdh,0e5h
  96. \tpop h    \t    ; ** simplify iy--
  97. %%
  98. \tsta \([\.a-zA-Z_][\._a-zA-Z0-9+\-]*\)
  99. ^\tlda \1
  100. %
  101. \tsta \1\t; ** redundant reload removed
  102. %%
  103. \tmov l,a
  104. ^\tmov a,l
  105. %
  106. \tmov l,a\t; ** redundant register load removed
  107. %%
  108. shld \([\.a-zA-Z_][\._a-zA-Z0-9+\-]*\)
  109. ^\tlhld \1
  110. %
  111. shld \1\t; ** redundant lhld deleted
  112. %%
  113. \tmov a,h
  114. ^\tora l
  115. \tjnz \([\.a-zA-Z_][\._a-zA-Z0-9]*\)
  116. ^\tlxi h,0
  117. %
  118. \tmov a,h
  119. \tora l
  120. \tjnz \1\t; ** lxi h,0 removed inline test.
  121. %%
  122. \txchg
  123. ^\tinx h
  124. ^\tinx h
  125. ^\txchg
  126. %
  127. \tinx d
  128. \tinx d    \t    ; ** inx d not inx h
  129. %%
  130. \tmov h,b
  131. ^\tmov l,c
  132. ^\tmov a,h
  133. ^\tora l
  134. %
  135. \tmov a,b\t    ; warning - no load hl !!!
  136. \tora c\t    ; ** check bc directly
  137. %%
  138. \tlxi h,\(.*\)
  139. ^\tpush h
  140. ^\tdb 221,225
  141. %
  142. \tdb 0ddh, 021h\t    ; warning no load HL
  143. \tdw \1    \t    ; ** simpler ix load
  144. %%
  145. \tlxi h,\(.*\)
  146. ^\tpush h
  147. ^\tdb 253,225
  148. %
  149. \tdb 0fdh, 021h\t    ; warning no load HL
  150. \tdw \1    \t    ; ** simpler iy load
  151. %%
  152. \tlxi h,\(.*\)
  153. ^\tmov b,h
  154. ^\tmov c,l
  155. ^\tLXI H,\(.*\)
  156. %
  157. \tlxi b,\1
  158. \tlxi h,\2\t    ; ** remove mov from hl
  159. %%
  160. \tmov h,b
  161. ^\tmov l,c
  162. ^\tlhld \(.*\)
  163. %
  164. \tlhld \1\t    ; ** remove load to hl
  165. %%
  166. \tmov h,b
  167. ^\tmov l,c
  168. ^\tlxi h,\(.*\)
  169. %
  170. \tlxi h,\1\t    ; ** remove move of BC to HL
  171. %%
  172. \tmov h,b
  173. ^\tmov l,c
  174. ^\(\..*\)
  175. ^\tlhld \(.*\)
  176. %
  177. \1
  178. \tlhld \2\t    ; ** remove move of bc to lh 2
  179. %%
  180. \tmov h,m
  181. ^\tmov l,a
  182. ^\tdcx h
  183. ^\txchg
  184. ^\tpop h
  185. %
  186. \tmov d,m
  187. \tmov e,a
  188. \tdcx d
  189. \tpop h    \t    ; ** remove xchg 0
  190. %%
  191. \tmov h,b
  192. ^\tmov l,c
  193. ^\txchg
  194. ^\tlxi h,\(.*\)
  195. %
  196. \tmov d,b
  197. \tmov e,c
  198. \tlxi h,\1\t    ; ** remove xchg 1
  199. %%
  200. \tlxi h,\(.*\)
  201. ^\txchg
  202. ^\tlxi h,\(.*\)
  203. %
  204. \tlxi d,\1
  205. \tlxi h,\2\t    ; ** remove xchg 2
  206. %%
  207. \tlxi h,\(.*\)
  208. ^\tmov d,b
  209. ^\tmov e,c
  210. ^\txchg
  211. %
  212. \tlxi d,\1
  213. \tmov h,b
  214. \tmov l,c\t    ; ** remove xchg 3
  215. %%
  216. \tmov l,a
  217. ^\tmvi h,0
  218. ^\tlxi d,\(.*\)
  219. ^\txchg
  220. %
  221. \tmov e,a
  222. \tmvi d,0
  223. \tlxi h,\1\t    ; ** remove xchg 4
  224. %%
  225. \tmov h,b
  226. ^\tmov l,c
  227. ^\tlxi d,\(.*\)
  228. ^\txchg
  229. %
  230. \tmov d,b
  231. \tmov e,c
  232. \tlxi h,\1\t    ; ** remove xchg 5
  233. %%
  234. \tmov h,b
  235. ^\tmov l,c
  236. ^\tpush h
  237. ^\tlhld \(.*\)
  238. %
  239. \tpush b
  240. \tlhld \1\t    ; ** push bc itself
  241. %%
  242. \tmov e,m
  243. ^\txchg
  244. ^\tmov a,l
  245. ^\tsta \(.*\)
  246. %
  247. \tmov a,m\t    ; ** warning corrupts de,hl
  248. \tsta \1\t    ; ** simpler 8 bit store
  249. %%
  250. \tdb 221,110,\([0-9]*\)
  251. ^\tdb 221,102,\([0-9]*\)
  252. ^\tpush h
  253. ^\tdb 221,110,\([0-9]*\)
  254. ^\tdb 221,102,\([0-9]*\)
  255. ^\tpop d
  256. ^\txchg
  257. %
  258. \tdb 221,110,\1
  259. \tdb 221,102,\2
  260. \tdb 221,05eh,\3
  261. \tdb 221,056h,\4\t    ; ** load hl/de from (ix)
  262. %%
  263. \tdb 253,110,\([0-9]*\)
  264. ^\tdb 253,102,\([0-9]*\)
  265. ^\tpush h
  266. ^\tdb 253,110,\([0-9]*\)
  267. ^\tdb 253,102,\([0-9]*\)
  268. ^\tpop d
  269. ^\txchg
  270. %
  271. \tdb 253,110,\1
  272. \tdb 253,102,\2
  273. \tdb 253,05eh,\3
  274. \tdb 253,056h,\4\t    ; ** load hl/de from (iy)
  275. %%
  276. \tdb 253,05eh,\([0-9]*\)
  277. ^\tdb 253,056h,\([0-9]*\)
  278. ^\tdb 253,110,\([0-9]*\)
  279. ^\tdb 253,102,\([0-9]*\)
  280. ^\txchg
  281. %
  282. \tdb 253,110,\1
  283. \tdb 253,102,\2
  284. \tdb 253,05eh,\3
  285. \tdb 253,056h,\4\t    ; ** load hl/de from (iy) 2
  286. %%
  287. \tdb 221,05eh,\([0-9]*\)
  288. ^\tdb 221,056h,\([0-9]*\)
  289. ^\tdb 221,110,\([0-9]*\)
  290. ^\tdb 221,102,\([0-9]*\)
  291. ^\txchg
  292. %
  293. \tdb 221,110,\1
  294. \tdb 221,102,\2
  295. \tdb 221,05eh,\3
  296. \tdb 221,056h,\4\t    ; ** load hl/de from (ix) 2
  297. %%
  298. \tlxi h,\(.*\)
  299. ^\tpush h
  300. ^\tlhld \(.*\)
  301. ^\tlxi d,\([0-9]*\)
  302. ^\tdad d
  303. ^\tpop d
  304. %
  305. \tlhld \2
  306. \tlxi d,\3
  307. \tdad d
  308. \tlxi d,\1\t    ; ** simpler load order
  309. %%
  310. \tmov l,a
  311. ^\tmvi h,0
  312. ^\tlxi d,\([\-0-9]*\)
  313. ^\tcall \.an
  314. %
  315. \tmvi h,0
  316. \tani \1\t    ; ** warning no set de
  317. \tmov l,a\t    ; ** remove call to .an
  318. %%
  319. \tmvi h,0
  320. ^\tlxi d,\([0-9]*\)
  321. ^\tcall \.an
  322. %
  323. \tmvi h,0
  324. \tmov a,l
  325. \tani \1\t    ; ** warning no set de
  326. \tmov l,a\t    ; ** remove call to .an 2
  327. %%
  328. \tlxi d,255
  329. ^\tcall \.an
  330. %
  331. \tmvi h,0
  332. \tmov a,l\t    ; ** warning no set de
  333. \tora a    \t    ; ** simplify .an 3
  334. %%
  335. \tmov e,m
  336. ^\tmvi d,0
  337. ^\tlxi h,\([\-0-9]*\)
  338. ^\tcall \.an
  339. %
  340. \tmov a,m
  341. \tmvi h,0
  342. \tani \1\t    ; ** warning no set de
  343. \tmov l,a\t    ; ** simplify .an 4
  344. %%
  345. \tpop h
  346. ^\tlxi d,\(.*\)
  347. ^\txchg
  348. %
  349. \tpop d
  350. \tlxi h,\1\t    ; ** remove xchg 6
  351. %%
  352. \tlda \(.*\)
  353. ^\tmov l,a
  354. ^\tpush h
  355. ^\tlhld \(.*\)
  356. ^\tinx h
  357. ^\tpop d
  358. ^\tmov m,e
  359. %
  360. \tlhld \2
  361. \tinx h
  362. \tlda \1\t    ; ** warning no set de
  363. \tmov m,a\t    ; ** simpler char (store)
  364. %%
  365. \tlda \(.*\)
  366. ^\tmov l,a
  367. ^\tpush h
  368. ^\tlhld \(.*\)
  369. ^\tinx h
  370. ^\tinx h
  371. ^\tinx h
  372. ^\tpop d
  373. ^\tmov m,e
  374. %
  375. \tlhld \2
  376. \tinx h
  377. \tinx h
  378. \tinx h
  379. \tlda \1\t    ; ** warning no set de
  380. \tmov m,a\t    ; ** simpler char (store) 2
  381. %%
  382. \txchg
  383. ^\tinx h
  384. ^\txchg
  385. %
  386. \tinx d    \t    ; ** simplify de++
  387. %%
  388. \txchg
  389. ^\tdcx h
  390. ^\txchg
  391. %
  392. \tdcx d    \t    ; ** simplify de--
  393. %%
  394. \tmov a,l
  395. ^\tsta \(.*\)
  396. ^\tmov a,l
  397. %
  398. \tmov a,l
  399. \tsta \1\t    ; ** remove mov a,l
  400. %%
  401. \tmov l,a
  402. ^\tmvi h,0
  403. ^\tpop d
  404. ^\txchg
  405. %
  406. \tmov e,a
  407. \tmvi d,0
  408. \tpop h\t    ; ** remove xchg 7
  409. %%
  410. \tlxi h,\(.*\)
  411. ^\tmov b,h
  412. ^\tmov c,l
  413. ^\tlhld \(.*\)
  414. %
  415. \tlxi b,\1
  416. \tlhld \2\t    ; ** remove mov bc,hl
  417. %%
  418. \tpop h
  419. ^\txchg
  420. ^\tlxi h,\(.*\)
  421. %
  422. \tpop d
  423. \tlxi h,\1\t    ; ** remove xchg 8
  424. %%
  425. \tdb 0ddh,023h
  426. ^\tdb 0ddh,0e5h
  427. ^\tpop h
  428. ^\tdb 253,110,\([0-9]*\)
  429. ^\tdb 253,102,\([0-9]*\)
  430. %
  431. \tdb 0ddh,023h
  432. \tdb 253,110,\1
  433. \tdb 253,102,\2\t    ; remove mov ix->hl
  434. %%
  435. \tdb 0ddh, 0e5h
  436. ^\tpop h
  437. ^\tlhld \(.*\)
  438. %
  439. \tlhld \1\t    ; remove load of HL
  440. %%
  441. \tdb 0ddh, 0e5h
  442. ^\tpop h
  443. ^\tlxi h,\(.*\)
  444. %
  445. \tlxi h,\1\t    ; remove load of HL 2
  446. %%
  447. \tdb 0fdh, 0e5h
  448. ^\tpop h
  449. ^\tlhld \(.*\)
  450. %
  451. \tlhld \1\t    ; remove load of HL 3
  452. %%
  453. \tdb 0fdh, 0e5h
  454. ^\tpop h
  455. ^\tlxi h,\(.*\)
  456. %
  457. \tlxi h,\1\t    ; remove load of HL 4
  458. %%
  459. \tmov b,h
  460. ^\tmov c,l
  461. ^\tmov a,h
  462. ^\tora l
  463. ^\tjz \(\..*\)
  464. ^\tmov h,b
  465. ^\tmov l,c
  466. %
  467. \tmov b,h
  468. \tmov c,l
  469. \tmov a,h
  470. \tora l
  471. \tjz \1    \t    ; ** remove xfer bc->hl
  472. %%
  473. \tmvi h,0
  474. ^\tmvi h,0
  475. %
  476. \tmvi h,0\t    ; ** remove mvi h,0
  477. %%
  478. \tlxi h,0
  479. ^\tshld \(.*\)
  480. ^\tlxi h,0
  481. %
  482. \tlxi h,0
  483. \tshld \1\t    ; ** remove lxi h,0
  484. %%
  485. \tpush h
  486. ^\tlxi h,\(.*\)
  487. ^\tpop d
  488. ^\txchg
  489. %
  490. \tlxi d,\1\t    ; ** lxi d simpler
  491. %%
  492. \tpop h
  493. ^\tmov b,h
  494. ^\tmov c,l
  495. ^\tlxi h,\(.*\)
  496. %
  497. \tpop b
  498. \tlxi h,\1\t    ; ** simplify pop b
  499. %%
  500. \tmov a,m
  501. ^\tinx h
  502. ^\tmov h,m
  503. ^\tmov l,a
  504. ^\tinx h
  505. ^\txchg
  506. ^\tpop h
  507. %
  508. \tmov e,m
  509. \tinx h
  510. \tmov d,m
  511. \tinx d
  512. \tpop h\t    ; ** simplify moves via hl to de
  513. %%
  514. \tani 255
  515. %
  516. \tora a\t    ; ** simplify ani 255
  517. %%
  518. \tpush h
  519. ^\tmov l,m
  520. ^\tinx h
  521. ^\txchg
  522. ^\tpop h
  523. ^\tmov m,e
  524. %
  525. \tmov e,m
  526. \tinx d
  527. \tmov m,e\t    ; ** simplify ( char )++
  528. %%
  529. \tlda \(.*\)
  530. ^\tmov l,a
  531. ^\tinx h
  532. ^\tmov a,l
  533. ^\tsta \(.*\)
  534. ^\tlxi h,\(.*\)
  535. %
  536. \tlda \1
  537. \tinr a
  538. \tsta \2
  539. \tlxi h,\3\t    ; ** simpler 8 bit direct ++
  540. %%
  541. \tlxi h,\(.*\)
  542. ^\tpush h
  543. ^\tlhld \(.*\)
  544. ^\tpop d
  545. %
  546. \tlxi d,\1
  547. \tlhld \2\t    ; ** remove xchg 9
  548. %%
  549. \tpush h
  550. ^\tlda \(.*\)
  551. ^\tmov e,a
  552. ^\tmvi d,0
  553. ^\tpop h
  554. %
  555. \tlda \1
  556. \tmov e,a
  557. \tmvi d,0\t    ; ** simpler 8 bit load de
  558. %%
  559. \tdb 253,110,\(.*\)
  560. ^\tdb 253,102,\(.*\)
  561. ^\tpush h
  562. ^\tdb 253,110,\(.*\)
  563. ^\tdb 253,102,\(.*\)
  564. ^\tpop d
  565. %
  566. \tdb 253,05eh,\1
  567. \tdb 253,056h,\2
  568. \tdb 253,110,\3
  569. \tdb 253,102,\4\t    ; ** simpler load hl,de from iy
  570. %%
  571. \tdb 221,110,\(.*\)
  572. ^\tdb 221,102,\(.*\)
  573. ^\tpush h
  574. ^\tdb 221,110,\(.*\)
  575. ^\tdb 221,102,\(.*\)
  576. ^\tpop d
  577. %
  578. \tdb 221,05eh,\1
  579. \tdb 221,056h,\2
  580. \tdb 221,110,\3
  581. \tdb 221,102,\4\t    ; ** simpler load de,hl from ix
  582. %%
  583. \tmov a,m
  584. ^\tinx h
  585. ^\tmov d,m
  586. ^\tmov e,a
  587. %
  588. \tmov e,m
  589. \tinx h\t    ; ** warning no load of A
  590. \tmov d,m\t    ; ** simpler load de
  591. %%
  592. \tmov h,b
  593. ^\tmov l,c
  594. ^\(\..*\)
  595. ^\tmov h,b
  596. ^\tmov l,c
  597. %
  598. \1
  599. \tmov h,b
  600. \tmov l,c\t    ; ** remove load bc to hl
  601. %%
  602. \tmov h,b
  603. ^\tmov l,c
  604. ^\txchg
  605. ^\tlhld \(.*\)
  606. %
  607. \tmov d,b
  608. \tmov e,c
  609. \tlhld \1\t    ; ** remove xchg 10
  610. %%
  611. \tmov h,b
  612. ^\tmov l,c
  613. ^\tmov d,b
  614. ^\tmov e,c
  615. ^\tlxi h,\(.*\)
  616. %
  617. \tmov d,b
  618. \tmov e,c
  619. \tlxi h,\1\t    ; ** remove bc to hl again
  620. %%
  621. \tLXI H,\(.*\)
  622. ^\txchg
  623. ^\tlxi h,\(.*\)
  624. %
  625. \tlxi d,\1
  626. \tlxi h,\2\t    ; ** remove xchg 11
  627. %%
  628. \tdb 221,110,\(.*\)
  629. ^\tdb 221,102,\(.*\)
  630. ^\tpop d
  631. ^\txchg
  632. %
  633. \tdb 221,05eh,\1
  634. \tdb 221,056h,\2
  635. \tpop h\t    ; ** remove xchg 12
  636. %%
  637. \tdb 253,110,\(.*\)
  638. ^\tdb 253,102,\(.*\)
  639. ^\tpop d
  640. ^\txchg
  641. %
  642. \tdb 253,05eh,\1
  643. \tdb 253,056h,\2
  644. \tpop h\t    ; ** remove xchg 13
  645. %%
  646. \tdb 221,110,\(.*\)
  647. ^\tdb 221,102,\(.*\)
  648. ^\txchg
  649. ^\tlxi h,\(.*\)
  650. %
  651. \tdb 221,05eh,\1
  652. \tdb 221,056h,\2
  653. \tlxi h,\3\t    ; ** remove xchg 14
  654. %%
  655. \tdb 253,110,\(.*\)
  656. ^\tdb 253,102,\(.*\)
  657. ^\txchg
  658. ^\tlxi h,\(.*\)
  659. %
  660. \tdb 253,05eh,\1
  661. \tdb 253,056h,\2
  662. \tlxi h,\3\t    ; ** remove xchg 15
  663. %%
  664. \tdb 0ddh,0e5h
  665. ^\tpop h
  666. ^\tlhld \(.*\)
  667. %
  668. \tlhld \1\t    ; ** remove load hl 5
  669. %%
  670. \tdb 0fdh,0e5h
  671. ^\tpop h
  672. ^\tlhld \(.*\)
  673. %
  674. \tlhld \1\t    ; ** remove load hl 6
  675. %%
  676. \tdb 0ddh,0e5h
  677. ^\tpop h
  678. ^\tlxi[ \t]h,\(.*\)
  679. %
  680. \tlxi h,\1\t    ; ** remove load hl 7
  681. %%
  682. \tdb 0fdh,0e5h
  683. ^\tpop h
  684. ^\tlxi[ \t]h,\(.*\)
  685. %
  686. \tlxi h,\1\t    ; ** remove load hl 8
  687. %%
  688. \tdb 0ddh,0e5h
  689. ^\tpop h
  690. ^\(\..*\)
  691. ^\tlxi[ \t]h,\(.*\)
  692. %
  693. \1
  694. \tlxi h,\2\t    ; ** remove load hl 9
  695. %%
  696. \tpush d
  697. ^\tdb 221,05eh,\(.*\)
  698. ^\tdb 221,056h,\(.*\)
  699. ^\tpop h
  700. %
  701. \txchg
  702. \tdb 221,05eh,\1
  703. \tdb 221,056h,\2\t    ; ** simplify indr load hl & de
  704. %%
  705. \tpush h
  706. ^\tdb 221,225
  707. ^\tdb 221,229
  708. ^\tpop d
  709. ^\tlxi h,\(.*\)
  710. %
  711. \tpush h
  712. \tdb 221,225
  713. \txchg
  714. \tlxi h,\1\t        ; ** simplify load of de from ix
  715. %%
  716. \tmvi h,0
  717. ^\tlxi d,\(.*\)
  718. ^\tcall \.eq
  719. ^\tjnz \(.*\)
  720. %
  721. \tmov a,l
  722. \tcpi \1
  723. \tjz \2\t    ; ** warning does not set hl !!
  724. %%
  725. \tmvi h,0
  726. ^\tlxi d,\(.*\)
  727. ^\tcall \.eq
  728. ^\tjz \(.*\)
  729. %
  730. \tmov a,l
  731. \tcpi \1
  732. \tjnz \2\t    ; ** warning does not set hl !!
  733. %%
  734. \tmvi h,0
  735. ^\tlxi d,\(.*\)
  736. ^\tcall \.ne
  737. ^\tjnz \(.*\)
  738. %
  739. \tmov a,l
  740. \tcpi \1
  741. \tjnz \2\t    ; ** warning does not set hl !!
  742. %%
  743. \tmvi h,0
  744. ^\tlxi d,\(.*\)
  745. ^\tcall \.ne
  746. ^\tjz \(.*\)
  747. %
  748. \tmov a,l
  749. \tcpi \1
  750. \tjz \2\t    ; ** warning does not set hl !!
  751. %%
  752. \tmov e,m
  753. ^\tmvi d,0
  754. ^\tlxi h,\(.*\)
  755. ^\tcall \.eq
  756. ^\tjnz \(.*\)
  757. %
  758. \tmov a,m
  759. \tcpi \1
  760. \tjz \2\t    ; ** warning does not set hl !!
  761. %%
  762. \tmov e,m
  763. ^\tmvi d,0
  764. ^\tlxi h,\(.*\)
  765. ^\tcall \.eq
  766. ^\tjz \(.*\)
  767. %
  768. \tmov a,m
  769. \tcpi \1
  770. \tjnz \2\t    ; ** warning does not set hl !!
  771. %%
  772. \tmov e,m
  773. ^\tmvi d,0
  774. ^\tlxi h,\(.*\)
  775. ^\tcall \.ne
  776. ^\tjnz \(.*\)
  777. %
  778. \tmov a,m
  779. \tcpi \1
  780. \tjnz \2\t    ; ** warning does not set hl !!
  781. %%
  782. \tmov e,m
  783. ^\tmvi d,0
  784. ^\tlxi h,\(.*\)
  785. ^\tcall \.ne
  786. ^\tjz \(.*\)
  787. %
  788. \tmov a,m
  789. \tcpi \1
  790. \tjz \2\t    ; ** warning does not set hl !!
  791. %%
  792. \tmvi h,0
  793. ^\tmov a,l
  794. ^\tora a
  795. ^\tmov l,a
  796. ^\tlxi d,\(.*\)
  797. ^\tcall \.eq
  798. ^\tjz \(.*\)
  799. %
  800. \tmov a,l
  801. \tcpi \1
  802. \tjnz \2\t    ; *** mega crush 1
  803. %%
  804. \tmvi h,0
  805. ^\tmov a,l
  806. ^\tora a
  807. ^\tmov l,a
  808. ^\tlxi d,\(.*\)
  809. ^\tcall \.eq
  810. ^\tjnz \(.*\)
  811. %
  812. \tmov a,l
  813. \tcpi \1
  814. \tjz \2\t    ; *** mega crush 2
  815. %%
  816. \tmvi h,0
  817. ^\tmov a,l
  818. ^\tora a
  819. ^\tmov l,a
  820. ^\tlxi d,\(.*\)
  821. ^\tcall \.ne
  822. ^\tjz \(.*\)
  823. %
  824. \tmov a,l
  825. \tcpi \1
  826. \tjz \2\t    ; *** mega crush 3
  827. %%
  828. \tmvi h,0
  829. ^\tmov a,l
  830. ^\tora a
  831. ^\tmov l,a
  832. ^\tlxi d,\(.*\)
  833. ^\tcall \.ne
  834. ^\tjnz \(.*\)
  835. %
  836. \tmov a,l
  837. \tcpi \1
  838. \tjnz \2\t    ; *** mega crush 4
  839. %%
  840. \tmvi h,0
  841. ^\tani \(.*\)
  842. ^\tmov l,a
  843. ^\tlxi d,\(.*\)
  844. ^\tcall \.eq
  845. ^\tjz \(.*\)
  846. %
  847. \tani \1
  848. \tcpi \2
  849. \tjnz \3\t    ; *** mega crush 5
  850. %%
  851. \tmvi h,0
  852. ^\tani \(.*\)
  853. ^\tmov l,a
  854. ^\tlxi d,\(.*\)
  855. ^\tcall \.eq
  856. ^\tjnz \(.*\)
  857. %
  858. \tani \1
  859. \tcpi \2
  860. \tjz \3\t    ; *** mega crush 6
  861. %%
  862. \tmvi h,0
  863. ^\tani \(.*\)
  864. ^\tmov l,a
  865. ^\tlxi d,\(.*\)
  866. ^\tcall \.ne
  867. ^\tjz \(.*\)
  868. %
  869. \tani \1
  870. \tcpi \2
  871. \tjz \3\t    ; *** mega crush 7
  872. %%
  873. \tmvi h,0
  874. ^\tani \(.*\)
  875. ^\tmov l,a
  876. ^\tlxi d,\(.*\)
  877. ^\tcall \.ne
  878. ^\tjnz \(.*\)
  879. %
  880. \tani \1
  881. \tcpi \2
  882. \tjnz \3\t    ; *** mega crush 8
  883. %%
  884. \tmvi h,0
  885. ^\tora a
  886. ^\tmov l,a
  887. ^\tlxi d,\(.*\)
  888. ^\tcall \.ne
  889. ^\tjz \(.*\)
  890. %
  891. \tcpi \1
  892. \tjz \2\t    ; *** mega crush 9
  893. %%
  894. \tmvi h,0
  895. ^\tora a
  896. ^\tmov l,a
  897. ^\tlxi d,\(.*\)
  898. ^\tcall \.ne
  899. ^\tjnz \(.*\)
  900. %
  901. \tcpi \1
  902. \tjnz \2\t    ; *** mega crush 10
  903. %%
  904. \tmvi h,0
  905. ^\tora a
  906. ^\tmov l,a
  907. ^\tlxi d,\(.*\)
  908. ^\tcall \.eq
  909. ^\tjz \(.*\)
  910. %
  911. \tcpi \1
  912. \tjnz \2\t    ; *** mega crush 11
  913. %%
  914. \tmvi h,0
  915. ^\tora a
  916. ^\tmov l,a
  917. ^\tlxi d,\(.*\)
  918. ^\tcall \.eq
  919. ^\tjnz \(.*\)
  920. %
  921. \tcpi \1
  922. \tjz \2\t    ; *** mega crush 12
  923. %%
  924. \tmvi h,0
  925. ^\tani \(.*\)
  926. ^\tmov l,a
  927. ^\tjz \(.*\)
  928. %
  929. \tani \1
  930. \tjz \2\t    ; *** warning no load hl 1
  931. %%
  932. \tmvi h,0
  933. ^\tani \(.*\)
  934. ^\tmov l,a
  935. ^\tjnz \(.*\)
  936. %
  937. \tani \1
  938. \tjnz \2\t    ; *** warning no load hl 2
  939. %%
  940. \tlda \(.*\)
  941. ^\tmvi h,0
  942. ^\tani \(.*\)
  943. ^\tmov l,a
  944. ^\tlxi d,\(.*\)
  945. ^\tcall \.eq
  946. ^\tjz \(.*\)
  947. %
  948. \tlda \1
  949. \tani \2
  950. \tcpi \3
  951. \tjnz \4\t    ; *** mega crush 13
  952. %%
  953. \tlda \(.*\)
  954. ^\tmvi h,0
  955. ^\tani \(.*\)
  956. ^\tmov l,a
  957. ^\tlxi d,\(.*\)
  958. ^\tcall \.eq
  959. ^\tjnz \(.*\)
  960. %
  961. \tlda \1
  962. \tani \2
  963. \tcpi \3
  964. \tjz \4\t    ; *** mega crush 14
  965. %%
  966. \tlda \(.*\)
  967. ^\tmvi h,0
  968. ^\tani \(.*\)
  969. ^\tmov l,a
  970. ^\tlxi d,\(.*\)
  971. ^\tcall \.ne
  972. ^\tjz \(.*\)
  973. %
  974. \tlda \1
  975. \tani \2
  976. \tcpi \3
  977. \tjz \4\t    ; *** mega crush 15
  978. %%
  979. \tlda \(.*\)
  980. ^\tmvi h,0
  981. ^\tani \(.*\)
  982. ^\tmov l,a
  983. ^\tlxi d,\(.*\)
  984. ^\tcall \.ne
  985. ^\tjnz \(.*\)
  986. %
  987. \tlda \1
  988. \tani \2
  989. \tcpi \3
  990. \tjnz \4\t    ; *** mega crush 16
  991. %%
  992. \tmvi h,0
  993. ^\tmov a,l
  994. ^\tani \(.*\)
  995. ^\tmov l,a
  996. ^\tjz \(.*\)
  997. %
  998. \tmov a,l
  999. \tani \1
  1000. \tjz \2\t    ; ** mega crush 17
  1001. %%
  1002. \tmvi h,0
  1003. ^\tmov a,l
  1004. ^\tani \(.*\)
  1005. ^\tmov l,a
  1006. ^\tjnz \(.*\)
  1007. %
  1008. \tmov a,l
  1009. \tani \1
  1010. \tjnz \2\t    ; ** mega crush 18
  1011. %%
  1012. \tjnz \(.*\)
  1013. ^\tjmp \(.*\)
  1014. ^\1:
  1015. %
  1016. \tjz \2\t    ; ** jump around jump
  1017. \1:
  1018. %%
  1019. \tjz \(.*\)
  1020. ^\tjmp \(.*\)
  1021. ^\1:
  1022. %
  1023. \tjnz \2\t    ; ** jump around jump 2
  1024. \1:
  1025. %%
  1026. \tmov l,a
  1027. ^\tcpi \(.*\)
  1028. ^\tjz \(.*\)
  1029. %
  1030. \tcpi \1
  1031. \tjz \2\t    ; ** mov l,a
  1032. %%
  1033. \tmov l,a
  1034. ^\tcpi \(.*\)
  1035. ^\tjnz \(.*\)
  1036. %
  1037. \tcpi \1
  1038. \tjnz \2\t    ; *** mov l,a 2
  1039. %%
  1040. \tmvi h,0
  1041. ^\tani \(.*\)
  1042. ^\tmov l,a
  1043. ^\txchg
  1044. ^\tlxi h,\(.*\)
  1045. %
  1046. \tmvi d,0
  1047. \tani \1
  1048. \tmov e,a
  1049. \tlxi h,\2\t    ; ** remove xchg 16
  1050. %%
  1051. \tmvi h,0
  1052. ^\tani \(.*\)
  1053. ^\tmov l,a
  1054. ^\txchg
  1055. ^\tlhld \(.*\)
  1056. %
  1057. \tmvi d,0
  1058. \tani \1
  1059. \tmov e,a
  1060. \tlhld \2\t    ; ** remove xchg 17
  1061. %%
  1062. \tlxi h,0
  1063. ^\tmov a,l
  1064. ^\tsta \(.*\)
  1065. ^\tlhld \(.*\)
  1066. %
  1067. \txra a
  1068. \tsta \1
  1069. \tlhld \2\t    ; ** don't clear hl 1
  1070. %%
  1071. \tlxi h,0
  1072. ^\tmov a,l
  1073. ^\tsta \(.*\)
  1074. ^\tsta \(.*\)
  1075. ^\tlhld \(.*\)
  1076. %
  1077. \txra a
  1078. \tsta \1
  1079. \tsta \2
  1080. \tlhld \3\t    ; ** don't clear hl 2
  1081. %%
  1082. \tlxi h,0
  1083. ^\tmov a,l
  1084. ^\tsta \(.*\)
  1085. ^\tlxi h,\(.*\)
  1086. %
  1087. \txra a
  1088. \tsta \1
  1089. \tlxi h,\2\t    ; ** don't clear hl 3
  1090. %%
  1091. \tlxi h,0
  1092. ^\tmov a,l
  1093. ^\tsta \(.*\)
  1094. ^\tsta \(.*\)
  1095. ^\tlxi h,\(.*\)
  1096. %
  1097. \txra a
  1098. \tsta \1
  1099. \tsta \2
  1100. \tlxi h,\3\t    ; ** don't clear hl 4
  1101. %%
  1102. \tmvi h,0
  1103. ^\tshld \(.*\)
  1104. ^\tlda \(.*\)
  1105. ^\tmov l,a
  1106. ^\tmvi h,0
  1107. %
  1108. \tmvi h,0
  1109. \tshld \1
  1110. \tlda \2
  1111. \tmov l,a\t; *** remove following unnecessary load
  1112. ;\tmvi h,0
  1113. %%
  1114. \tcall \.eq
  1115. %
  1116. \tdb 0f7h\t; rst 30 instead of call .eq
  1117. %%
  1118. \tcall \.ne
  1119. %
  1120. \tdb 0d7h\t; rst 10h instead of call .ne
  1121. %%
  1122. \tcall \.ug
  1123. %
  1124. \tdb 0e7h\t; rst 20h instead of call .ug
  1125. %%
  1126. \tcall \.sb
  1127. %
  1128. \tdb 0efh\t; rst 28h instead of call .sb
  1129. %%
  1130. \tcall \.an
  1131. %
  1132. \tdb 0cfh\t; rst 8h instead of call .an
  1133. %%
  1134. \tcall \.ul
  1135. %
  1136. \txchg
  1137. \tdb 0e7h\t; rst 20h ex de,hl and restart instead of call .ul
  1138. %%
  1139. \txchg
  1140. ^\txchg
  1141. %
  1142. ;\t\tremove double exchange
  1143. %%
  1144. \tpop d
  1145. ^\tlxi h,\(.*\)
  1146. ^\txchg
  1147. %
  1148. \tpop h
  1149. \tlxi d,\1\t; *** yet another xchg !
  1150. %%
  1151. \tmov d,b
  1152. ^\tmov e,c
  1153. ^\tlxi h,\(.*\)
  1154. ^\txchg
  1155. %
  1156. \tmov h,b
  1157. \tmov l,c
  1158. \tlxi d,\1\t; *** yet another another xchg !
  1159. %%
  1160. \tlxi d,0
  1161. ^\tmov m,e
  1162. ^\tmvi d,0
  1163. %
  1164. \tlxi d,0
  1165. \tmov m,e\t; *** D already clear.
  1166. %%
  1167. \tlxi h,\(.*\)
  1168. ^\tmov a,l
  1169. ^\tsta \(.*\)
  1170. ^\tlxi h,\(.*\)
  1171. %
  1172. \tmvi a,\1
  1173. \tsta \2\t\t; *** simpler 8 bit store
  1174. \tlxi h,\3
  1175. %%
  1176. \tmvi h,0
  1177. ^\tshld \(.*\)
  1178. ^\tlda \(.*\)
  1179. ^\tmov l,a
  1180. ^\tmvi h,0
  1181. %
  1182. \tmvi h,0
  1183. \tshld \1
  1184. \tlda \2
  1185. \tmov l,a\t; *** remove following unnecessary load ( dummy end )
  1186. ;\tmvi h,0
  1187. %%
  1188.